/**
 * 给定一个单链表的头结点pHead(该头节点是有值的)，
 * 长度为n，反转该链表后，返回新链表的表头。
 *
 * Date: 2022-09-30
 * Time: 21:12
 */
public class Test {

    /*

    public ListNode ReverseList(ListNode head) {
        // // 法一: 定义三个指针
        // if(head == null || head.next == null) { return head; }
        // // 走到这至少有两个节点.
        // ListNode prev = head;
        // ListNode cur = prev.next;

        // while(cur.next != null) {
        //     // 保存 cur 的后继.
        //     ListNode curNext = cur.next;
        //     cur.next = prev;

        //     prev = cur;
        //     cur = curNext;
        // }
        // cur.next = prev;
        // head.next = null;
        // return cur;



        // 法二: 利用头插法
        if(head == null || head.next == null) { return head; }
        // 走到这至少有两个节点.
        ListNode cur = head.next;
        head.next = null;
        while(cur != null) {
            ListNode curNext = cur.next;
            cur.next = head;
            head = cur;

            cur = curNext;
        }
        return head;

    }

     */
}
